home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / PowerPlant / AGA Classes 1.2 / Utilities / LAGADiscloTriangle.h < prev    next >
Text File  |  1996-06-30  |  3KB  |  92 lines

  1. // ===========================================================================
  2. //    LAGADiscloTriangle.h
  3. // ===========================================================================
  4. //    “Apple Grayscale Appearance” compliant right-hand disclosure triangle. 
  5. // Uses the same PPob as LStdCheckBox. A left-hand version is left as an
  6. // exercise for the reader :-).
  7. //
  8. // Copyright 1996 by Michael™ Hamel of ADInstruments NZ Ltd, mhamel@adi.co.nz
  9. //
  10. //    You may use this source code in any application (commercial, shareware, freeware,
  11. //    postcardware, etc), without acknowledgment, but may not remove this notice.
  12. //
  13. //    You may not sell this source code in any form. This source code may be placed on 
  14. //    publicly accessible archive sites and source code disks. It may not be placed on 
  15. //    for-profit archive sites and source code disks without the permission of the author.
  16. //
  17. //     This source code is distributed "as is", without any warranty. Use it at your own
  18. //  risk.
  19. //
  20. //        This class requires AGAColors.cp to be present in your project
  21. //
  22. //        Version : 1.2
  23. //
  24. //        Change History (most recent first, date in US form : mm/dd/yy):
  25. //
  26. //                        06/30/96    ca        Public release of version 1.2
  27. //                        06/04/96    ca        Added RegisterClass method to ease registry
  28. //                                            Added guard macros in header files
  29. //                                            Increased version to 1.2
  30. //                        05/21/96    M™H    Initial version set to 1.1 to be put with other AGA classes
  31. //
  32. //        To Do:
  33. //
  34.  
  35. #ifndef _H_LAGADiscloTriangle
  36. #define _H_LAGADiscloTriangle
  37. #pragma once
  38.  
  39. #include    <LControl.h>
  40. #include <LString.h>
  41.  
  42.  
  43. class    LAGADiscloTriangle : public LControl {
  44. public:
  45.     enum { class_ID = 'AGAs' };
  46.     static void RegisterClass ();                                                                                                        //    <06/04/96    ca>
  47.     static LAGADiscloTriangle*    CreateAGADiscloTriangleStream(LStream *inStream);
  48.     
  49.                 LAGADiscloTriangle();
  50.                 
  51.                 LAGADiscloTriangle(const SPaneInfo &inPaneInfo,
  52.                                 MessageT inValueMessage,
  53.                                 Int32 inValue,
  54.                                 ResIDT traitsID,
  55.                                 Str255 title);
  56.                                 
  57.                 LAGADiscloTriangle(LStream *inStream);
  58.                 
  59.     virtual        ~LAGADiscloTriangle();
  60.         
  61.     void        SetValue(Int32    inValue);
  62.  
  63. protected:
  64.                                         
  65.     void        HotSpotAction(short inHotSpot, Boolean inCurrInside,
  66.                                         Boolean inPrevInside);
  67.     void        HotSpotResult(short inHotSpot);
  68.  
  69.     void         DisableSelf () { Refresh(); };
  70.  
  71.     void         EnableSelf () { Refresh(); };
  72.  
  73. private:
  74.  
  75.     enum TriangleState {
  76.         kRight,
  77.         kIntermediate,
  78.         kDown
  79.     };
  80.     
  81.     void            DrawText();
  82.     void            DrawTriangle(TriangleState stage, Boolean hilite);
  83.     void            DrawSelf();
  84.     
  85.     ResIDT        mTextTraitsID;
  86.     Boolean     mInColor;
  87.     LStr255        mTitle;
  88.  
  89. };
  90.  
  91. #endif
  92.